/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package secureplace;

import java.util.Properties;
import java.util.Enumeration;
import java.io.*;
import java.util.Vector;


/**
 *
 * @author hanscker
 */
public class Parametros {

    public static String Bluetooth_Intervalo;
    public static String Webcam_Dispositivo;
    public static String Webcam_Localizador;
    public static String Webcam_Tolerancia;
    public static String Webcam_Retraso;
    public static String Audio_Nivel;
    public static boolean Notificaciones_Alarma_Activada;
    public static String Notificaciones_Alarma_Archivo;
    public static String Notificaciones_Alarma_Repeticiones;
    public static String Notificaciones_Email_Direccion;
    public static boolean Notificaciones_Email_CuentaInterna;
    public static String Notificaciones_Email_Servidor;
    public static String Notificaciones_Email_Puerto;
    public static String Notificaciones_Email_Usuario;
    public static String Notificaciones_Email_Password;
    public static boolean Notificaciones_Email_Autentificacion;
    public static boolean Notificaciones_Email_SPA;
    public static boolean Notificaciones_Email_TLS;
    public static String Notificaciones_Telefono_Numero;
    public static String Notificaciones_Telefono_Puerto;
    public static boolean General_Inicio_Automatico;
    static Vector dispositivosSeguros = new Vector();
    
    public static void leerParametros() {

        Properties propiedades = new Properties();
        try {
        propiedades.load(new FileInputStream("config.properties"));
        } catch (IOException e) {
            System.out.println(e);
        }

        //Bluetooth
        Bluetooth_Intervalo = propiedades.getProperty("Bluetooth_Intervalo","1");
        
        // Recorremos los elementos y los mostramos
        for (Enumeration elemento = propiedades.propertyNames(); elemento.hasMoreElements()    ;) {
            // Obtenemos el objeto
            Object propiedad = elemento.nextElement();

            //Agregamos los Bluetooth_Dispositivo al vector dispositivosSeguros
            if (propiedad.toString().startsWith("Bluetooth_Dispositivo")) {
                dispositivosSeguros.addElement(propiedades.getProperty(propiedad.toString()));
            }
        }


        //Webcam
        Webcam_Dispositivo = propiedades.getProperty("Webcam_Dispositivo","");
        Webcam_Localizador = propiedades.getProperty("Webcam_Localizador","vfw://0");
        Webcam_Tolerancia = propiedades.getProperty("Webcam_Tolerancia","0");
        Webcam_Retraso = propiedades.getProperty("Webcam_Retraso","0");


        //Audio
        Audio_Nivel = propiedades.getProperty("Audio_Nivel","50");

        //Notificaciones
        //Alarma Auditiva
        Notificaciones_Alarma_Activada = Boolean.valueOf(propiedades.getProperty("Notificaciones_Alarma_Activada","false"));
        Notificaciones_Alarma_Archivo = propiedades.getProperty("Notificaciones_Alarma_Archivo","");
        Notificaciones_Alarma_Repeticiones = propiedades.getProperty("Notificaciones_Alarma_Repeticiones","5");
        //Email
        Notificaciones_Email_Direccion = propiedades.getProperty("Notificaciones_Email_Direccion","");
        Notificaciones_Email_CuentaInterna = Boolean.valueOf(propiedades.getProperty("Notificaciones_Email_CuentaInterna","true"));
        Notificaciones_Email_Servidor = propiedades.getProperty("Notificaciones_Email_Servidor","");
        Notificaciones_Email_Puerto = propiedades.getProperty("Notificaciones_Email_Puerto","");
        Notificaciones_Email_Usuario = propiedades.getProperty("Notificaciones_Email_Usuario","");
        Notificaciones_Email_Password = propiedades.getProperty("Notificaciones_Email_Password","");

        Notificaciones_Email_Autentificacion = Boolean.valueOf(propiedades.getProperty("Notificaciones_Email_Autentificacion","false"));
        Notificaciones_Email_SPA = Boolean.valueOf(propiedades.getProperty("Notificaciones_Email_SPA","false"));
        Notificaciones_Email_TLS = Boolean.valueOf(propiedades.getProperty("Notificaciones_Email_TLS","false"));
        //Telefono
        Notificaciones_Telefono_Numero = propiedades.getProperty("Notificaciones_Telefono_Numero","");
        Notificaciones_Telefono_Puerto = propiedades.getProperty("Notificaciones_Telefono_Puerto","");

        //General
        General_Inicio_Automatico = Boolean.valueOf(propiedades.getProperty("General_Inicio_Automatico","false"));

        /* Enumeracion de propiedades
        for (Enumeration elemento = propiedades.propertyNames(); elemento.hasMoreElements()    ;) {
            // Obtenemos el objeto
            Object propiedad = elemento.nextElement();

            System.out.println(propiedad.toString()+"="+propiedades.getProperty(propiedad.toString()));
        }
         */
    }
    

    public static void guardarParametros() {
        
        Properties propiedades = new Properties();

        propiedades.put("Bluetooth_Intervalo", Bluetooth_Intervalo);
                
        for (int i=0; i<dispositivosSeguros.size();i++ ) {
                propiedades.put("Bluetooth_Dispositivo"+i, dispositivosSeguros.get(i).toString());
        }

        propiedades.put("Webcam_Dispositivo", Webcam_Dispositivo);
        propiedades.put("Webcam_Localizador", Webcam_Localizador);
        propiedades.put("Webcam_Tolerancia", Webcam_Tolerancia);
        propiedades.put("Webcam_Retraso", Webcam_Retraso);
        propiedades.put("Audio_Nivel", Audio_Nivel);

        String alarmaActivada = new Boolean(Parametros.Notificaciones_Alarma_Activada).toString();
        propiedades.put("Notificaciones_Alarma_Activada", alarmaActivada);
        propiedades.put("Notificaciones_Alarma_Archivo", Notificaciones_Alarma_Archivo);
        propiedades.put("Notificaciones_Alarma_Repeticiones", Notificaciones_Alarma_Repeticiones);
        propiedades.put("Notificaciones_Email_Direccion", Notificaciones_Email_Direccion);
        String neci = new Boolean(Parametros.Notificaciones_Email_CuentaInterna).toString();
        propiedades.put("Notificaciones_Email_CuentaInterna", neci);
        propiedades.put("Notificaciones_Email_Servidor", Notificaciones_Email_Servidor);
        propiedades.put("Notificaciones_Email_Puerto", Notificaciones_Email_Puerto);
        propiedades.put("Notificaciones_Email_Usuario", Notificaciones_Email_Usuario);
        propiedades.put("Notificaciones_Email_Password", Notificaciones_Email_Password);

        String neaut = new Boolean(Parametros.Notificaciones_Email_Autentificacion).toString();
        propiedades.put("Notificaciones_Email_Autentificacion", neaut);
        String nespa = new Boolean(Parametros.Notificaciones_Email_SPA).toString();
        propiedades.put("Notificaciones_Email_SPA", nespa);
        String netls = new Boolean(Parametros.Notificaciones_Email_TLS).toString();
        propiedades.put("Notificaciones_Email_TLS", netls);


        propiedades.put("Notificaciones_Telefono_Numero", Notificaciones_Telefono_Numero);
        propiedades.put("Notificaciones_Telefono_Puerto", Notificaciones_Telefono_Puerto);

        String ia = new Boolean(Parametros.General_Inicio_Automatico).toString();
        propiedades.put("General_Inicio_Automatico", ia);

        try {
        Writer archivoConfiguracion = new FileWriter("config.properties");
        propiedades.store(archivoConfiguracion, "Configuraciones");
        archivoConfiguracion.close();
        } catch (IOException e) {
            System.out.println(e);
        }

    }

    static String fechaActual() {
        java.util.Date fechaActual = new java.util.Date();
        java.text.SimpleDateFormat formatofecha = new java.text.SimpleDateFormat("yyyy.MM.dd_H.mm.ss");
        String fecha = formatofecha.format(fechaActual);
        return fecha;
    }

}
